package com.example.entity;

import cn.hutool.core.annotation.Alias;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @Description TODO
 * @Author dingchunlin
 * @Date 2023/12/31 11:37
 * @Version 1.0.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ExcelIgnoreUnannotated // 没加导出注解的字段，不导出
public class AttendanceRecords {
    /**
     * 记录ID（RecordID）：唯一标识考勤记录的编号
     * 员工ID（EmployeeID）：关联到员工表的员工ID
     * 日期（Date）：考勤的日期
     * 上班时间（StartTime）：员工的上班时间
     * 下班时间（EndTime）：员工的下班时间
     * 迟到时间（LateTime）：员工的迟到时间
     * 请假状态（LeaveStatus）：员工的请假状态，如正常、请假、迟到、早退等
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    private Integer employeeId;
    @Alias("姓名")
    @TableField(exist = false)
    private String employeeName;

    @Alias("部门名称")
    @TableField(exist = false)
    private String departmentName;

    @Alias("日期")
    //这个是默认今天时间
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date date;

    @Alias("上班打卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;

    @Alias("下班打卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;

    @Alias("迟到时间")
    private String lateTime;

    @Alias("是否迟到")
    @TableField(exist = false)
    private String isLate;

    @Alias("是否早退")
    @TableField(exist = false)
    private String isEarly;

    @Alias("早退时长")
    private String earlyTime;

    @Alias("上班状态")
    private String leaveStatus;

}
